package cn.xiaolang.function.staticVSconstructor;

import java.util.HashMap;
import java.util.Map;

import cn.xiaolang.common.utils.Monitor;


public class StaticVSConstructor {

	/**
	 * 1000000条记录的对比:
	 * 用构造器创建对象，用时：所用时间（秒）：1.189
	 * 用静态方法创建对象，用时：所用时间（秒）：0.218
	 */
	public static void main(String[] args) {
		Map<String, TestObject> map = new HashMap<String, TestObject>();
		Monitor.begin();
		for(int i=0;i<10000;i++){
			TestObject testObject = new TestObject();
			map.put(i+"", testObject);
		}
		Monitor.end("用构造器创建对象，用时：");
		map.clear();
		System.gc();
		Monitor.begin();
		for(int i=0;i<10000;i++){
			TestObject testObject = TestObject.getInstance();
			map.put(i+"", testObject);
		}
		Monitor.end("用静态方法创建对象，用时：");
	}
}

class TestObject {
	/**
	 * 静态方法
	 */
	public static TestObject getInstance(){
		return new TestObject();
	}
}